package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.ItemOCBean;
import DAO.HibernateItemOCDAO;
import DTO.ItemOCDTO;
import Model.ItemOC;

public class AdministradorItemOC {
private static AdministradorItemOC instancia;
	
	private AdministradorItemOC(){
		
	}
	
	public static AdministradorItemOC getInstancia(){
		if(instancia==null){
			instancia=new AdministradorItemOC();
		}
		return instancia;
	}

	public List<ItemOCBean> fromModelToBean(List<ItemOC> itemOCs) {
		List<ItemOCBean> itemOCsBean=new ArrayList<ItemOCBean>();
		for (ItemOC itemOC : itemOCs) {
			itemOCsBean.add(fromModelTOBean(itemOC));
		}
		return itemOCsBean;
	}

	public ItemOCBean fromModelTOBean(ItemOC itemOC) {
		ItemOCBean itemOCBean=null;
		if(itemOC!=null){
		itemOCBean=new ItemOCBean();
		itemOCBean.setId(itemOC.getId());
		itemOCBean.setCalidad(itemOC.getCalidad());
		itemOCBean.setCant(itemOC.getCant());
		itemOCBean.setDiasVenc(itemOC.getDiasVenc());
		itemOCBean.setProd(AdministradorProducto.getInstancia().fromModelTOBean(itemOC.getProd()));
		itemOCBean.setSucursalDestino(itemOC.getSucursalDestino());
		}
		return itemOCBean;
	}

	public List<ItemOC> fromDTOTOModel(List<ItemOCDTO> itemOCsDTO) {
		List<ItemOC> itemOCs=new ArrayList<ItemOC>();
		for (ItemOCDTO itemOCDTO : itemOCsDTO) {
			itemOCs.add(fromDTOTOModel(itemOCDTO));
		}
		return itemOCs;
	}
	public ItemOC fromDTOTOModel(ItemOCDTO itemOCDTO) {
		ItemOC itemOC=null;
		if(itemOCDTO!=null){
		itemOC=new ItemOC();
		itemOC.setId(itemOCDTO.getId());
		itemOC.setCalidad(itemOCDTO.getCalidad());
		itemOC.setCant(itemOCDTO.getCant());
		itemOC.setDiasVenc(itemOCDTO.getDiasVenc());
		itemOC.setProd(AdministradorProducto.getInstancia().fromDTOTOModel(itemOCDTO.getProd()));
		itemOC.setSucursalDestino(itemOCDTO.getSucursalDestino());
		}
		return itemOC;
	}
	
	public List<ItemOCDTO> fromModelTODTO(List<ItemOC> itemOCs) {
		List<ItemOCDTO> itemOCsDTO=new ArrayList<ItemOCDTO>();
		for (ItemOC itemOC : itemOCs) {
			itemOCsDTO.add(fromModelTODTO(itemOC));
		}
		return itemOCsDTO;
	}
	public ItemOCDTO fromModelTODTO(ItemOC itemOC) {
		ItemOCDTO itemOCDTO=null;
		if(itemOC!=null){
			itemOCDTO=new ItemOCDTO();
			itemOCDTO.setId(itemOC.getId());
			itemOCDTO.setCalidad(itemOC.getCalidad());
			itemOCDTO.setCant(itemOC.getCant());
			itemOCDTO.setDiasVenc(itemOC.getDiasVenc());
			itemOCDTO.setProd(AdministradorProducto.getInstancia().fromModelTODTO(itemOC.getProd()));
			itemOCDTO.setSucursalDestino(itemOC.getSucursalDestino());
		}
		return itemOCDTO;
	}

	public List<ItemOC> fromBeanTOModel(List<ItemOCBean> itemOCsBean) {
		List<ItemOC> itemOCs=new ArrayList<ItemOC>();
		for (ItemOCBean itemOCBean : itemOCsBean) {
			itemOCs.add(fromBeanTOModel(itemOCBean));
		}
		return itemOCs;
	}

	public ItemOC fromBeanTOModel(ItemOCBean itemOCBean) {
		ItemOC itemOC=null;
		if(itemOCBean!=null){
			itemOC=new ItemOC();
			itemOC.setId(itemOCBean.getId());
			itemOC.setCalidad(itemOCBean.getCalidad());
			itemOC.setCant(itemOCBean.getCant());
			itemOC.setDiasVenc(itemOCBean.getDiasVenc());
			itemOC.setProd(AdministradorProducto.getInstancia().fromBeanTOModel(itemOCBean.getProd()));
			itemOC.setSucursalDestino(itemOCBean.getSucursalDestino());
		}
		return itemOC;
	}

	public void grabarItemOC(ItemOC itemOC) {
		ItemOCBean fb=fromModelTOBean(itemOC);
		HibernateItemOCDAO.getInstancia().grabarItemOC(fb);
		
	}
	
	public ItemOC buscarItemOC(ItemOC f){
		ItemOCBean fb=fromModelTOBean(f);
		fb=HibernateItemOCDAO.getInstancia().buscarItemOC(fb);
		return fromBeanTOModel(fb);
	}

	public List<ItemOCBean> fromModelTOBean(List<ItemOC> items) {
		List<ItemOCBean> itemsb=new ArrayList<ItemOCBean>();
		for (ItemOC itemOC : items) {
			ItemOCBean itemb=fromModelTOBean(itemOC);
			itemsb.add(itemb);
		}
		return itemsb;
	}
}
